/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejb.metodos;

import com.itextpdf.text.BadElementException;
import com.itextpdf.text.DocumentException;
import ejb.dao.estagio.Alerta;
import ejb.dao.estagio.Concedente;
import ejb.dao.estagio.Curso;
import ejb.dao.estagio.Estagio;
import ejb.dao.relatorios.AvaliacaoEstagiario;
import ejb.dao.relatorios.AvaliacaoSupervisor;
import ejb.dao.relatorios.FichaFrequencia;
import ejb.dao.relatorios.RelatorioAtividades;
import ejb.dao.usuarios.Estagiario;
import ejb.dao.usuarios.Orientador;
import ejb.dao.usuarios.Supervisor;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.text.ParseException;
import java.util.List;
import javax.ejb.Local;

/**
 *
 * @author Gomes
 */
@Local
public interface SessionBeanLocal {

    boolean cadastrarEstagiario(String login, String senha, String nome, Curso curso, String unidadeSetorial, int semestre, String rga, String cpf, String rg, String orgaoExpedidor, String nacionalidade, String rua, int nRua, String bairro, String cep, String cidade, String uf, String telefone, String telefoneRecado, String email, Estagio estagio);

    boolean cadastrarOrientador(String login, String senha, String nome, Curso curso);

    boolean cadastrarSupervisor(String login, String senha, String nome, String cargo, String formacao);

    boolean cadastrarEstagio(String loginEstagiario, boolean isObrigatorio, double valorBolsa, double valorAuxilioTransporte, String nApoliceSeguro, String empresaApoliceSeguro, String tema, String area, double cargaHorariaDiaria, double cargaHorariaSemanal, double cargaHorariaTotalPrevista, String inicioPrevisto, String terminoPrevisto, String justificativa, String objetivo, String metodologia, Concedente concedente, Orientador orientador, Supervisor supervisor, String cronograma, String horarioEstagio);

    public boolean updateEstagio(Estagio velhoEstagio, boolean isObrigatorio, double valorBolsa, double valorAuxilioTransporte, String nApoliceSeguro, String empresaApoliceSeguro, String tema, String area, double cargaHorariaDiaria, double cargaHorariaSemanal, double cargaHorariaTotalPrevista, String inicioPrevisto, String terminoPrevisto, String justificativa, String objetivo, String metodologia, Concedente concedente, Orientador orientador, Supervisor supervisor, String cronograma, String horarioEstagio);

    boolean criarAlerta(String dataAlerta, String descricao) throws ParseException;

    boolean salvarFichaFrequenica(String loginEstagiario, List<FichaFrequencia> fichaFrequencia);

    boolean salvarRelatorioAtividades(String loginEstagiario, boolean isFinal, String periodoInicio, String periodoFim, double cargaHorariaAcumulada, String atividadesDesenvolvidas, int programaEstagio, String atividadesNaoIncluidasProgramaEstagio, String tarefasNaoContribuiram, String tarefasIndispensaveisNaoFeitas, int realidadeTrabalho, int conhecimentosTeoricos, boolean ambientacaoPessoas, boolean temOrientadorTarefas, String orientadorTarefas, boolean informacoesClaras, boolean informacoesDadas, String aQuemRecorria, int sentirDeficiencias, String dificuldades, boolean trocaExperiencia, int solucoesProprias, boolean trabalhosTeoricosPalestras, String outrasObservacoes) throws ParseException;

    boolean salvarAvaliacaoEstagiario(String loginEstagiario, int ai1, int ai2, int ai3, int ai4, int ap1, int ap2, int ap3, int ap4, int ap5, int ap6, int atp1, int atp2, int atp3, int atp4, int atp5, int atp6, String aproveitamento, String contribuicao, String sugestoes);

    boolean salvarAvaliacaoSupervisor(String loginEstagiario, int ai1, int ai2, int ai3, int ai4, int ap1, int ap2, int ap3, int ap4, int ap5, int ap6, int atp1, int atp2, int atp3, int atp4, int atp5, int atp6, String prosseguimento, String outrosEstagiarios, String sugestoes);

    String login(String login, String senha);

    Concedente cadastrarConcedente(String nome, String pessoa, String cpfCnpj, String rua, String nRua, String bairro, String cidade, String uf, String cep, String telefone, String fax, String email, String representanteLegal);

    Supervisor cadastrarSupervisor(String login, String senha, String nome, String telefone, String fax, String email, String cargo, String formacao);

    Orientador buscarOrientador(Long id);

    Orientador buscarOrientador(String login);

    Curso buscarCurso(Long id);

    Estagiario buscarEstagiario(String loginEstagiario);

    Estagiario buscarEstagiario(Long idEstagiario);

    Estagio buscarEstagio(String loginEstagiario);

    Estagio buscarEstagio(Long idEstagio);

    RelatorioAtividades buscarRelatorioAtividades(String loginEstagiario);

    AvaliacaoEstagiario buscarAvaliacaoEstagiario(String loginEstagiario);

    AvaliacaoSupervisor buscarAvaliacaoSupervisor(String loginEstagiario);

    void updateEstagiario(Estagiario estagiario);

    List<Curso> listarCursos();

    boolean cadastrarCurso(String login, String nome, int porcentagem);

    List<Orientador> listarOrientadores(Curso curso);

    List<Estagiario> listarTodosEstagiarios();

    boolean gerarTermoCompromisso(Estagio estagio) throws DocumentException, FileNotFoundException;

    boolean gerarPlanoAtividades(Estagio estagio) throws DocumentException, FileNotFoundException, BadElementException, MalformedURLException, IOException;

    boolean gerarAvaliacao(boolean isEstagiario, Estagio estagio) throws FileNotFoundException, DocumentException;

    boolean gerarRelatorioAtividades(Estagio estagio) throws DocumentException, FileNotFoundException;

    boolean gerarFichaFrequencia(FichaFrequencia fichaFrequencia) throws DocumentException, FileNotFoundException;

    boolean gerarCertificado(String nomeEstagiario, String curso, int horarioTotal, String periodoInicio, String periodoFim, String nomeEmpresa, String nomeOrientador, String nomeSupervisor) throws FileNotFoundException, IOException, DocumentException;

    List<Estagio> listarEstagiosPorOrientador(Long idOrientador);

    List<Estagio> listarEstagiosEsperandoAprovacao(String loginOrientador);

    boolean updateStatusEstagio(Long idEstagio, String novoStatus);

    boolean aprovarEstagio(Long idEstagio, String status);

    boolean verificarDadosEstagio(Estagio estagio);

    List<Alerta> listarAlertas();

    int contarEstagiosEmEspera(String loginOrientador);

    public String alterarSenha(String login, String senhaAntiga, String senhaNova, String confirmarSenhaNova);

    public void novaFichaFrequencia(String loginEstagiario, String referenteAoMes, String tabela);

    public List<FichaFrequencia> buscarFichaFrequencia(Long id);
    
    public String checkStatus();

    public void startTimer();
}
